package com.xjh.basestudy.designmode.createMode.createMode1_Singleton;
/**
 * @Author 25036
 * @Date 2022/9/12 0:07
 * @Description 单例模式-饿汉模式（eager initialization）：在类加载的时候创建实例
 */
public class eagerSun {

    // 定义一个常量：自己实例化自己
    // “private”关键字确保太阳实例的私有性、不可见性和不可访问性；
    // “static”关键字确保太阳的静态性，将太阳放入内存里的静态区，在类加载的时候就初始化了，它与类同在，也就是说它是与类同时期且早于内存堆中的对象实例化的，
    // “final”关键字则确保这个太阳是常量、恒量，它是一颗终极的恒星，引用一旦被赋值就不能再修改；
    // “new”关键字初始化太阳类的静态实例，并赋予静态常量sun。
    private static final eagerSun EAGER_SUN = new eagerSun();//自有永有的单例

    // Java会为每个类自动加上一个public的无参构造器，为了防止外部创建该类的对象，需要重写构造器，并定义为private防止外部创建该类对象(将构造方法定义为private后，外部创建Sun对象会报错)
    private eagerSun() {
    }
    // 让外界可以通过getInstanc得到一个Sun的实例
    public static eagerSun getInstance() {//阳光普照，方法公开化
        return EAGER_SUN;
    }

}